package com.ls.base;

import com.ls.constant.SystemConstants;
import com.ls.exception.SysException;

import static com.ls.constant.SystemConstants.SERVER_ERROR_CODE;

/**
 * @ClassName ResultUtils
 * @Description 返回结果工具
 * @Author TangQuanBin
 * @Date 2019/9/14 10:52
 * @Version 1.0
 **/
public class BaseResultUtil {

    public static final String PARAM_LACK = "参数缺失";

    public static final String SQL_ERROR = "数据库异常";
    /**
     * 返回成功，传入返回体具体出參
     *
     * @param object 要返回前端的数据
     * @return
     */
    public static BaseResult success(Object object) {
        return new BaseResult(SystemConstants.SUCCESS_CODE, SystemConstants.SERVER_SUCCESS_MESSAGE, object);
    }

    /**
     * 返回成功（无需返回）
     *
     * @return
     */
    public static BaseResult success() {
        return success(null);
    }

    /**
     * 自定义错误信息
     *
     * @param code    错误码
     * @param message 错误信息
     * @return
     */
    public static BaseResult error(int code, String message) {
        return new BaseResult(code, message, null);
    }

    /**
     * 默认错误信息
     *
     * @param message 错误信息
     * @return
     */
    public static BaseResult error(String message) {
        return new BaseResult(SERVER_ERROR_CODE, message, null);
    }

    public static BaseResult error(Object object) {
        return new BaseResult(SERVER_ERROR_CODE, SystemConstants.SERVER_ERROR_MESSAGE,object);
    }
    /**
     * 返回异常信息，在已知的范围内
     *
     * @param e 根据业务需要，自定义异常信息类（集成自FengQuanException）
     * @return
     */
    public static BaseResult error(SysException e) {
        return new BaseResult(e.getCode(), e.getMessage(), null);
    }
}
